package chapter1.section2;

import org.junit.Test;

/**
 * 给定一长字符串a和一断字符串b，请问，如何最快的判断出短字符串b中的所有字符是否都在长字符串a中？
 * 请编写方法boolean stringContain(String a,String b)实现此功能。为简单起见，假设输入的字符只包含大写英文字母。
 * @author lidd
 *
 */
/*
 * 解法一：蛮力轮训,时间复杂度O(mn)
 */
public class StringContain1 {

	public boolean stringContain(String a, String b) {
		for(int i = 0; i<b.length(); i++) {
			int j;
			for(j = 0; j<a.length() && (a.charAt(j) != b.charAt(i)); j++)
				;
			//如果b中的字符在a中有，下面的条件是肯定不会成立的，所以不可能返回false
			//当b中有字符在a中没有时，j会一直加直至和a的长度大小相等，下面条件就会成立，返回false
			if(j >= a.length()) {
				return false;
			}
		}
		return true;
	}
	
	//测试方法
	@Test
	public void test() {
		String a = "ABCD";
		String b = "AE";
		boolean bool = stringContain(a, b);
		System.out.println(bool);
	}
}
